import { VantComponent } from "../common/component";
import { WHITE } from "../common/color";
import { getSystemInfoSync } from "../common/utils";
VantComponent({
	props: {
		message: String,
		background: String,
		type: {
			type: String,
			value: "danger"
		},
		color: {
			type: String,
			value: WHITE
		},
		duration: {
			type: Number,
			value: 3000
		},
		zIndex: {
			type: Number,
			value: 110
		},
		safeAreaInsetTop: {
			type: Boolean,
			value: false
		},
		top: null
	},
	data: {
		show: false,
		onOpened: null,
		onClose: null,
		onClick: null
	},
	created() {
		const { statusBarHeight } = getSystemInfoSync();
		this.setData({ statusBarHeight });
	},
	methods: {
		show() {
			const { duration, onOpened } = this.data;
			clearTimeout(this.timer);
			this.setData({ show: true });
			wx.nextTick(onOpened);
			if (duration > 0 && duration !== Infinity) {
				this.timer = setTimeout(() => {
					this.hide();
				}, duration);
			}
		},
		hide() {
			const { onClose } = this.data;
			clearTimeout(this.timer);
			this.setData({ show: false });
			wx.nextTick(onClose);
		},
		onTap(event) {
			const { onClick } = this.data;
			if (onClick) {
				onClick(event.detail);
			}
		}
	}
});
